#include <stdio.h>

int main(void)
{
    /* C语言没有提供字符串类型的变量，需要用字符数组来实现字符串，字符串一定以'\0'结尾，否则就不是字符串 */

    // 下面三种定义字符数组的方式是等价的,都表示字符串
    char str1[100] = "hello";
    char str2[100] = {'h', 'e', 'l', 'l', 'o'}; // 未初始化的部分默认值是0即'\0'
    char str3[100] = {"hello"};

    //char str4[5] = "hello"; // 这种定义方式是错误的，因为数据的长度不是5，而是6，因为后面还会跟一个结束标志符号'\n'，这样或导致数组越界

    char str5[] = "hello"; // 这种定义方式是可以的，数组长度是6

    char str6[5] = {'h', 'e', 'l', 'l', 'o'}; // 这种定义方式是可以的，但是这不能表示一个字符串，只是一个字符数组

    int i;

    // 字符数组的访问（遍历）
    for (i = 0; str1[i] != '\0'; i++)
        printf("%c", str1[i]); // 该语句等价于 putchar(str1[i]);
    printf("\n");

    // 上面的三行代码等价于c语言的标准访问字符串的库函数：
    puts(str1);


    return 0;
}


